package com.bw.service.comment;

import com.bw.entity.PageResult;
import com.bw.pojo.comment.ItemProductPages;
import com.bw.pojo.comment.ProductReply;
import com.bw.pojo.comment.ProductReplyPages;
import com.bw.pojo.goods.Sku;
import com.bw.pojo.order.OrderItem;

import java.util.List;
import java.util.Map;

public interface ProductReplyService {


    public ProductReply findById(String id);


    public ProductReply findByOrderId(String orderId);

    /**
     * 分页查询
     *
     * @param page 页码
     * @param size 每页记录数
     * @return 分页结果
     */
    public PageResult<ProductReply> findPage(int page, int size);
    public PageResult<ProductReply> findBinPage(int page, int size);

    public PageResult<ItemProductPages> findItemPage(int page,int size,String username);

    /**
     * 分页查询
     *
     * @param page  页码
     * @param size  每页记录数
     * @param skuId sku的id
     * @return 分页结果以及该商品的满意度
     */
    public ProductReplyPages findAllPageBySkuId(int page, int size,String skuId);

    public ProductReplyPages findHasPicPageBySkuId(int page, int size, String skuId);

    public ProductReplyPages findHasReplyPageBySkuId(int page, int size, String skuId);

    public ProductReplyPages findGoodCommentPageBySkuId(int page, int size, String skuId);

    public ProductReplyPages findMiddleCommentPageBySkuId(int page, int size, String skuId);

    public ProductReplyPages findBadCommentPageBySkuId(int page, int size, String skuId);


    public Integer[] getCommentCount(String skuId);
//    public ProductReplyPages findPageBySkuId(int page, int size, String skuId);

    /**
     * 查询全部评论信息（用于管理员查询）
     * @return
     */
    public List<ProductReply> findAll();

    /**
     * 模糊查询+分页
     * @param searchMap
     * @return
     */
    public PageResult<ProductReply> findPage(Map<String, Object> searchMap,int page, int size);

    /**
     * 根据商品id数组查询商品
     */
    public List<Sku> findSkuListBySkuIds(Map<String, Object> searchMap);


    /**
     * 分页+查询
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    public PageResult<ProductReply> findPageSearch(Map<String, Object> searchMap, int page, int size);

    //删除评论
    public void delete(String id);
    //恢复删除的评论
    public void restore(String id);
    //批量删除
    public void deleMany(String[] ids);
    //批量恢复
    public void resMany(String[] ids);
    //更新
    public void update(ProductReply productReply);
    //添加第一次的评论
    public void add(String orderId,String skuId);

    public void add1(ProductReply productReply);


    /**
     * 追评
     */
    public void follow(String id,String content,String image);

    //删除追评
    public void deleteFollow(String id);

    //添加虚拟评论
    public void addVirtual(List<ProductReply> productReplies);




    //超时自动好评
    public void TimeOut();
    //管理员的分页查询
    PageResult<ProductReply> findListPage(int page, int size);
    //阅读量+1
    public void browsesAdd(String id);
}